package Modelo;

import Dao.GenerateID;
import java.io.Serializable;
import java.util.Date;

/**
 *
 * @author kassio
 */
public class Reserva implements Serializable, GenerateID {
    private static final long serialVersionUID = 1L;
    private int id;
    private Hotel hotel;
    private Quarto quarto;
    private Hospede hospede;
    private Date inicio;
    private Date fim;
    private boolean paga;
    private boolean total;
    private double totalHospedagem; 
    private double totalPago;    
    
    public Reserva() {}
    
    public static Reserva getInstance(Hotel hotel, Quarto quarto, Date inicio, Date fim) {
        Reserva r = new Reserva();
        r.setHotel(hotel);
        r.setQuarto(quarto);
        r.setInicio(inicio);
        r.setFim(fim);
        
        return r;
    }

    public void getData(Reserva r) {
        hotel = r.getHotel();
        quarto = r.getQuarto();
        hospede = r.getHospede();
        inicio = r.getInicio();
        fim = r.getFim();
        paga = r.isPaga();
        total = r.isTotal();
        totalPago = r.getTotalPago();
        totalHospedagem = r.getTotalHospedagem();        
    }
    
    @Override
    public int getId() {
        return id;
    }

    @Override
    public void setId(int id) {
        this.id = id;
    }    
    
    public boolean isPaga() {
        return paga;
    }

    public void setPaga(boolean paga) {
        this.paga = paga;
    }

    public boolean isTotal() {
        return total;
    }

    public void setTotal(boolean total) {
        this.total = total;
    }

    public double getTotalPago() {
        return totalPago;
    }

    public void setTotalPago(double totalPago) {
        this.totalPago = totalPago;
    }
    
    public Date getFim() {
        return fim;
    }

    public void setFim(Date fim) {
        this.fim = fim;
        this.fim.setHours(12);
    }

    public Hotel getHotel() {
        return hotel;
    }

    public void setHotel(Hotel hotel) {
        this.hotel = hotel;
    }

    public Date getInicio() {
        return inicio;
    }

    public void setInicio(Date inicio) {
        this.inicio = inicio;
        this.inicio.setHours(12);
    }

    public Quarto getQuarto() {
        return quarto;
    }

    public void setQuarto(Quarto quarto) {
        this.quarto = quarto;
    }

    public Hospede getHospede() {
        return hospede;
    }

    public void setHospede(Hospede hospede) {
        this.hospede = hospede;
    }

    public double getTotalHospedagem() {
        return totalHospedagem;
    }

    public void setTotalHospedagem(double totalHospedagem) {
        this.totalHospedagem = totalHospedagem;
    }
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Reserva other = (Reserva) obj;
        if (this.id != other.id) {
            return false;
        }

        return true;
    }

    @Override
    public String toString() {
        return "Reserva{" + "id=" + id + ", hotel=" + hotel + ", quarto=" + quarto + ", hospede=" + hospede + ", inicio=" + inicio + ", fim=" + fim + ", paga=" + paga + ", total=" + total + ", totalHospedagem=" + totalHospedagem + ", totalPago=" + totalPago + '}';
    }


    
}
